ENTRNA - a framework to predict RNA foldability

Su, C., Weir, J. D., Zhang, F., Yan, H., & Wu, T. (2019).
ENTRNA: a framework to predict RNA foldability.
BMC Bioinformatics, 20(1), 1–11. http://doi.org/10.1186/s12859-019-2948-5


In [1]:
from rna_tools.Seq import RNASequence

In [2]:
seq = 'acucggcuaggcgaguauaaauagccgucaggccuagcgcguccaagccuagccccuucuggggcugggcgaagggucggg'
ss =  '((((........)))).......((((..............(((((((((((((((....)))))))))))))))..))))'

seq = RNASequence(seq)
seq.ss = ss
fe = seq.eval()
print('free energy: %f' % fe)
fa = seq.get_foldability()
print('foldability: %f' % fa)


free energy: -27.200000
foldability: 0.828365

In [3]:
seq = 'acucggcuaggcgaguauaaauagccgucaggccuagcgcguccaagccuagccccuucuggggcugggcgaagggucggg'
ss =  '((((..[[[[[..)))).......((((....]]]]]....(((((((((((((((....)))))))))))))))..))))'

seq = RNASequence(seq)
seq.ss = ss
fe = seq.eval()
print('free energy: %f' % fe)
fa = seq.get_foldability(verbose=True)
print('foldability: %f' % fa)


free energy: -11.800000
[17, 16, 15, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 3, 2, 1, 0, 0, 0, 0, 0, 0, 0, 81, 80, 79, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 0, 0, 0, 0, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 0, 0, 28, 27, 26, 25]
cd /Users/magnus/work/evoClustRNA/rna-foldability/ENTRNA/ && python -W ignore ENTRNA_predict.py --seq_file /var/folders/yc/ssr9692s5fzf7k165grnhpk80000gp/T/tmpIARsa2 --str_file /var/folders/yc/ssr9692s5fzf7k165grnhpk80000gp/T/tmpfGmLP4




===============================================================


RNA sequence:
acucggcuaggcgaguauaaauagccgucaggccuagcgcguccaagccuagccccuucuggggcugggcgaagggucggg
RNA secondary structure:
[17, 16, 15, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 3, 2, 1, 0, 0, 0, 0, 0, 0, 0, 81, 80, 79, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 0, 0, 0, 0, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 0, 0, 28, 27, 26, 25]
This is pseudoknot-free RNA
Foldability: 0.8283652197473068


===============================================================



foldability: 0.828365

In [4]:
seq = RNASequence("GGCAGGGGCGCUUCGGCCCCCUAUGCC")
seq.ss =          "((((((((.((....)).)))).))))"

fe = seq.eval()
print('free energy: %f' % fe)
fa = seq.get_foldability()
print('foldability: %f' % fa)


free energy: -13.500000
foldability: 0.055185

In [7]:
seq = RNASequence("GGCAGGGGCGCUUCGGCCCCCUAUGCC")
ss =              "..............()..........."
fe = seq.eval(ss=ss)
print('free energy: %f' % fe)


free energy: 100000.500000